package main

import (
	"fmt"
	"log"
	"os"

	"github.com/joho/godotenv"
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
	"github.com/go-redis/redis/v8"
	"golang.org/x/net/context"
)

func main() {
	// 加载 .env 文件
	err := godotenv.Load()
	if err != nil {
		log.Fatal("Error loading .env file")
	}

	// 从 .env 文件中读取 MongoDB 和 Redis 配置
	mongoURI := os.Getenv("MONGO_URI")
	redisHost := os.Getenv("REDIS_HOST")
	redisPort := os.Getenv("REDIS_PORT")
	redisPassword := os.Getenv("REDIS_PASSWORD")
	redisDB := os.Getenv("REDIS_DB")

	// 打印读取的配置
	fmt.Println("MongoDB URI:", mongoURI)
	fmt.Println("Redis Host:", redisHost)
	fmt.Println("Redis Port:", redisPort)
	fmt.Println("Redis Password:", redisPassword)
	fmt.Println("Redis DB:", redisDB)

	// 连接 MongoDB（不带密码）
	client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(mongoURI))
	if err != nil {
		log.Fatal(err)
	}
	defer client.Disconnect(context.TODO())

	fmt.Println("MongoDB connected")

	// 连接 Redis
	rdb := redis.NewClient(&redis.Options{
		Addr:     fmt.Sprintf("%s:%s", redisHost, redisPort),
		Password: redisPassword, // Redis 密码，如果没有密码可以为空
		DB:       0,             // 默认数据库
	})

	_, err = rdb.Ping(context.TODO()).Result()
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("Redis connected")
}
